﻿using System;
using System.Data;
using System.Data.SqlClient;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Text;

using Banesco.Entidades;

namespace Banesco.Data
{
    public class DSBanesco : DSGenerico
    {
        public DSBanesco()
        {
            this.DBConnectionString = ConfigurationManager.ConnectionStrings["Banesco_DBConnectionString"].ConnectionString;
        }

        public Mensaje RegistrarCliente(string Cliente, string TipoCliente, string Email, string Estado, string PC, ref int IDSolicitud, string IP)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_RegistroCliente";
            this.Command.CommandType = CommandType.StoredProcedure;

            this.Command.Parameters.Clear();
            //this.Command.Parameters.AddWithValue("@Identificacion", Identificacion);
            this.Command.Parameters.AddWithValue("@Cliente", Cliente);
            //this.Command.Parameters.AddWithValue("@TipoIdentificacion", TipoIdentificacion);
            this.Command.Parameters.AddWithValue("@TipoCliente", TipoCliente);
            //this.Command.Parameters.AddWithValue("@Pais", Pais);
            this.Command.Parameters.AddWithValue("@Email", Email);
            //this.Command.Parameters.AddWithValue("@Telefono", Telefono);
            this.Command.Parameters.AddWithValue("@Estado", Estado);
            this.Command.Parameters.AddWithValue("@PC", PC);
            this.Command.Parameters.AddWithValue("@IP", IP);

            try
            {
                int ret = int.Parse(this.EjecutarScalar().ToString());

                IDSolicitud = ret;
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }

        public Mensaje RegistrarMensaje(string Identificacion, string MensajeE)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_LogDeMensajesEnviados";
            this.Command.CommandType = CommandType.StoredProcedure;

            this.Command.Parameters.Clear();
            this.Command.Parameters.AddWithValue("@Mensaje", MensajeE);
            this.Command.Parameters.AddWithValue("@Identificacion", Identificacion);
            this.Command.Parameters.AddWithValue("@Estado", "E");

            try
            {
                int ret = this.Ejecutar();
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }

        public Mensaje VerificarIntentosDeRegistro(string EmailCliente, ref int _times)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_VerificarIntentos";
            this.Command.CommandType = CommandType.StoredProcedure;

            this.Command.Parameters.Clear();
            this.Command.Parameters.Add(new SqlParameter("@EmailCliente", EmailCliente));

            try
            {
                _times = int.Parse(this.EjecutarScalar().ToString());
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }



        public Mensaje VerificarEstadoSolicitud(int IdSolicitud, ref string estadoSolicitud)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_VerificarEstadoSolicitud";
            this.Command.CommandType = CommandType.StoredProcedure;

            this.Command.Parameters.Clear();
            this.Command.Parameters.Add(new SqlParameter("@IdSolicitud", IdSolicitud));

            try
            {
                estadoSolicitud = (this.EjecutarScalar().ToString());
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }


        public Mensaje VerificarIntentosIP(string IP, ref int _timesIP)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_VerificarIntentosIP";
            this.Command.CommandType = CommandType.StoredProcedure;

            this.Command.Parameters.Clear();
            this.Command.Parameters.Add(new SqlParameter("@IP", IP));

            try
            {
                _timesIP = int.Parse(this.EjecutarScalar().ToString());
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }

        public Mensaje ObtenerMensajesErrores(ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_ObtenerMensajesErrores";
            this.Command.CommandType = CommandType.StoredProcedure;

            try
            {
                int ret = this.Retrieve(dsDatos);
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }

        public Mensaje ObtenerRangoSalarial(ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_ObtenerRangoSalarial";
            this.Command.CommandType = CommandType.StoredProcedure;

            try
            {
                int ret = this.Retrieve(dsDatos);
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }

        public Mensaje ObtenerEstadoCivil(ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_ObtenerEstadoCivil";
            this.Command.CommandType = CommandType.StoredProcedure;

            try
            {
                int ret = this.Retrieve(dsDatos);
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }

        public Mensaje ObtenerSucursales(ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_ObtenerSucursales";
            this.Command.CommandType = CommandType.StoredProcedure;

            try
            {
                int ret = this.Retrieve(dsDatos);
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }

        public Mensaje ObtenerPaises(ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_ObtenerPaises";
            this.Command.CommandType = CommandType.StoredProcedure;

            try
            {
                int ret = this.Retrieve(dsDatos);
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }

        public Mensaje ObtenerProvincias(ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_ObtenerProvincias";
            this.Command.CommandType = CommandType.StoredProcedure;

            try
            {
                int ret = this.Retrieve(dsDatos);
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }

        public Mensaje ObtenerDistritos(ref DataSet dsDatos, string idProvincia)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_ObtenerDistritos";
            this.Command.CommandType = CommandType.StoredProcedure;
            this.Command.Parameters.Clear();
            this.Command.Parameters.AddWithValue("@idProvincia", idProvincia);

            try
            {
                int ret = this.Retrieve(dsDatos);
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }

        public Mensaje ObtenerCorregimientos(ref DataSet dsDatos, string idDistrito)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_ObtenerCorregimientos";
            this.Command.CommandType = CommandType.StoredProcedure;
            this.Command.Parameters.Clear();
            this.Command.Parameters.AddWithValue("@idDistrito", idDistrito);

            try
            {
                int ret = this.Retrieve(dsDatos);
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }

        public Mensaje ObtenerTipoIdentificacion(ref DataSet dsDatos, string Tipo)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_ObtenerTipoIdentificacion";
            this.Command.CommandType = CommandType.StoredProcedure;
            this.Command.Parameters.Clear();
            this.Command.Parameters.AddWithValue("@Tipo", Tipo);

            try
            {
                int ret = this.Retrieve(dsDatos);
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }

        public Mensaje ObtenerEstadoSolicitud(ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_ObtenerEstadoSolicitud";
            this.Command.CommandType = CommandType.StoredProcedure;

            try
            {
                int ret = this.Retrieve(dsDatos);
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }

        public Mensaje ObtenerNivelEducacion(ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_ObtenerNivelEducacion";
            this.Command.CommandType = CommandType.StoredProcedure;

            try
            {
                int ret = this.Retrieve(dsDatos);
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }

        public Mensaje ObtenerTipoActividadEconomica(ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_ObtenerTipoActividadEconomica";
            this.Command.CommandType = CommandType.StoredProcedure;

            try
            {
                int ret = this.Retrieve(dsDatos);
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }

        public Mensaje ObtenerTipoCliente(ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_ObtenerTipoCliente";
            this.Command.CommandType = CommandType.StoredProcedure;

            try
            {
                int ret = this.Retrieve(dsDatos);
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }

        public Mensaje ObtenerReferenciasPersonales(int IdSolicitud, ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_ObtenerReferenciasPersonales";
            this.Command.CommandType = CommandType.StoredProcedure;

            this.Command.Parameters.Clear();
            this.Command.Parameters.AddWithValue("@IdSolicitud", IdSolicitud);

            try
            {
                int ret = this.Retrieve(dsDatos);
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }



        public Mensaje ObtenerDatosCliente(int IdSolicitud, ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_ObtenerDatosCliente";
            this.Command.CommandType = CommandType.StoredProcedure;

            this.Command.Parameters.Clear();
            this.Command.Parameters.AddWithValue("@IdSolicitud", IdSolicitud);

            try
            {
                int ret = this.Retrieve(dsDatos);
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }


        public Mensaje ObtenerProfesion(ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_ObtenerProfesion";
            this.Command.CommandType = CommandType.StoredProcedure;

            try
            {
                int ret = this.Retrieve(dsDatos);
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }




        public Mensaje ObtenerTipoNegocio(ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_ObtenerTipoNegocio";
            this.Command.CommandType = CommandType.StoredProcedure;

            try
            {
                int ret = this.Retrieve(dsDatos);
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }



        public Mensaje ObtenerCodigoIndustria(ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_ObtenerCodigoIndustria";
            this.Command.CommandType = CommandType.StoredProcedure;

            try
            {
                int ret = this.Retrieve(dsDatos);
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }


        public Mensaje ObtenerTipoEmpresa(ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_ObtenerTipoEmpresa";
            this.Command.CommandType = CommandType.StoredProcedure;

            try
            {
                int ret = this.Retrieve(dsDatos);
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }



        public Mensaje ObtenerFuenteIngreso(ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_ObtenerFuenteIngreso";
            this.Command.CommandType = CommandType.StoredProcedure;

            try
            {
                int ret = this.Retrieve(dsDatos);
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }




        public Mensaje ObtenerOrigenFondos(ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_ObtenerOrigenFondos";
            this.Command.CommandType = CommandType.StoredProcedure;

            try
            {
                int ret = this.Retrieve(dsDatos);
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }


        //public Mensaje GuardarCliente(string  TipoIdentificacion ,  string NumeroIdentificacion ,  string NumeroSeguroSocial , string PrimerNombre, string SegundoNombre, string PrimerApellido, string SegundoApellido , string ApellidoCasada, string Sexo , string EstadoCivil, DateTime FechaNacimiento , int Edad , string Pais, string Provincia,  string Distrito, string Corregimiento, string Barrio, string Calle , string Residencia, string NoCasa, string UbicacionFacilResidencia , string ApartadoPostal , string Email , string ClienteEnOtroPais , string ClientePais , string Telefono1, string Telefono2, string Telefono3 , string NombreEmpresa , string CodigoIndustria , string TipoEmpresa, string TipoNegocio , string Correo , string DireccionEmpresa , string TelefonoOficina , string Fax, string IdentificacionContraloría, string NumeroEmpleado , string FechadeIngreso, string TiempoEmpleo , string RangoSalarial, string SalarioActual , string NivelEducacion , string Profesion , string FuenteDeIngreso, string Cargo , string TipoActividad  )
        //{
        //    Mensaje retMensaje = new Mensaje();

        //    this.Command.CommandText = "pcBanesco_GuardarCliente";
        //    this.Command.CommandType = CommandType.StoredProcedure;

        //    this.Command.Parameters.Clear();
        //    this.Command.Parameters.AddWithValue("@NumeroIdentificacion", NumeroIdentificacion);

        //    


        //    try
        //    {
        //        int ret = Ejecutar();
        //    }
        //    catch (SqlException sex)
        //    {
        //        //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
        //        retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
        //        retMensaje.Error = sex.ErrorCode.ToString();
        //        retMensaje.MensajeTecnico = sex.Message;
        //    }
        //    return retMensaje;
        //}


        public Mensaje GuardarClienteNatural(UsuarioBase Usuario)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_GuardarClienteNatural";
            this.Command.CommandType = CommandType.StoredProcedure;

            this.Command.Parameters.Clear();


            this.Command.Parameters.AddWithValue("@Identificacion", Usuario.Identificacion);
            this.Command.Parameters.AddWithValue("@SeguroSocial", Usuario.SeguroSocial);
            this.Command.Parameters.AddWithValue("@Cliente", Usuario.Cliente);
            this.Command.Parameters.AddWithValue("@TipoIdentificacion", Usuario.TipoIdentificacion);
            this.Command.Parameters.AddWithValue("@TipoCliente", Usuario.TipoCliente);
            this.Command.Parameters.AddWithValue("@Pais", Usuario.Pais);
            this.Command.Parameters.AddWithValue("@Email", Usuario.Email);
            this.Command.Parameters.AddWithValue("@Estado", Usuario.Estado);
            this.Command.Parameters.AddWithValue("@PC", Usuario.PC);
            this.Command.Parameters.AddWithValue("@PrimerNombre", Usuario.PrimerNombre);
            this.Command.Parameters.AddWithValue("@SegundoNombre", Usuario.SegundoNombre);
            this.Command.Parameters.AddWithValue("@PrimerApellido", Usuario.PrimerApellido);
            this.Command.Parameters.AddWithValue("@SegundoApellido", Usuario.SegundoApellido);
            this.Command.Parameters.AddWithValue("@ApellidoDeCasada", Usuario.ApellidoDeCasada);
            this.Command.Parameters.AddWithValue("@Sexo", Usuario.Sexo);
            this.Command.Parameters.AddWithValue("@EstadoCivil", Usuario.EstadoCivil);
            this.Command.Parameters.AddWithValue("@FechaDeNacimiento", Usuario.FechaDeNacimiento);
            this.Command.Parameters.AddWithValue("@Edad", Usuario.Edad);
            this.Command.Parameters.AddWithValue("@Provincia", Usuario.Provincia);
            this.Command.Parameters.AddWithValue("@Distrito", Usuario.Distrito);
            this.Command.Parameters.AddWithValue("@Corregimiento", Usuario.Corregimiento);
            this.Command.Parameters.AddWithValue("@Barrio", Usuario.Barrio);
            this.Command.Parameters.AddWithValue("@Calle", Usuario.Calle);
            this.Command.Parameters.AddWithValue("@Residencia", Usuario.Residencia);
            this.Command.Parameters.AddWithValue("@NumeroCasa", Usuario.NumeroCasa);
            this.Command.Parameters.AddWithValue("@ApartadoPostal", Usuario.ApartadoPostal);
            this.Command.Parameters.AddWithValue("@UbicacionFacilResidencia", Usuario.UbicacionFacilResidencia);
            this.Command.Parameters.AddWithValue("@ResidenteEnPanama", Usuario.ResidenteEnPanama);
            this.Command.Parameters.AddWithValue("@ClienteOtroPais", Usuario.ClienteOtroPais);
            this.Command.Parameters.AddWithValue("@TelefonoCasa", Usuario.TelefonoCasa);
            this.Command.Parameters.AddWithValue("@TelefonoCelular", Usuario.TelefonoCelular);
            this.Command.Parameters.AddWithValue("@OtroTelefono", Usuario.OtroTelefono);
            this.Command.Parameters.AddWithValue("@NombreEmpresa", Usuario.NombreEmpresa);
            this.Command.Parameters.AddWithValue("@CodigoIndustria", Usuario.CodigoIndustria);
            this.Command.Parameters.AddWithValue("@TipoEmpresa", Usuario.TipoEmpresa);
            this.Command.Parameters.AddWithValue("@TipoNegocio", Usuario.TipoNegocio);
            this.Command.Parameters.AddWithValue("@DireccionEmpleo", Usuario.DireccionEmpleo);
            this.Command.Parameters.AddWithValue("@TelefonoOficina", Usuario.TelefonoOficina);
            this.Command.Parameters.AddWithValue("@TelefonoFax", Usuario.TelefonoFax);
            this.Command.Parameters.AddWithValue("@IdentificacionContraloria", Usuario.IdentificacionContraloria);
            this.Command.Parameters.AddWithValue("@NumeroDeEmpleado", Usuario.NumeroDeEmpleado);
            this.Command.Parameters.AddWithValue("@FechaIngresoEmpleo", Usuario.FechaIngresoEmpleo);
            this.Command.Parameters.AddWithValue("@TiempoDeEmpleo", Usuario.TiempoDeEmpleo);
            this.Command.Parameters.AddWithValue("@RangoSalarial", Usuario.RangoSalarial);
            this.Command.Parameters.AddWithValue("@SalarioActual", Usuario.SalarioActual);
            this.Command.Parameters.AddWithValue("@NivelEducacion", Usuario.NivelEducacion);
            this.Command.Parameters.AddWithValue("@Profesion", Usuario.Profesion);
            this.Command.Parameters.AddWithValue("@FuenteDeIngreso", Usuario.FuenteDeIngreso);
            this.Command.Parameters.AddWithValue("@Cargo", Usuario.Cargo);
            this.Command.Parameters.AddWithValue("@TipoDeActividad", Usuario.TipoDeActividad);

            this.Command.Parameters.AddWithValue("@CuentaAhorros", Usuario.CuentaAhorros);
            this.Command.Parameters.AddWithValue("@CuentaCorriente", Usuario.CuentaCorriente);
            this.Command.Parameters.AddWithValue("@BancaEnLinea", Usuario.BancaEnLinea);
            this.Command.Parameters.AddWithValue("@VisaDebito", Usuario.VisaDebito);
            this.Command.Parameters.AddWithValue("@SucursalDePreferencia", Usuario.SucursalDePreferencia);
            this.Command.Parameters.AddWithValue("@NombreLegal", Usuario.NombreLegal);
            this.Command.Parameters.AddWithValue("@NombreComercial", Usuario.NombreComercial);
            this.Command.Parameters.AddWithValue("@NoRegistroDeSociedad", Usuario.NoRegistroDeSociedad);
            this.Command.Parameters.AddWithValue("@TipoSociedad", Usuario.TipoSociedad);
            this.Command.Parameters.AddWithValue("@PaisRegistroSociedad", Usuario.PaisRegistroSociedad);
            this.Command.Parameters.AddWithValue("@FechaRegistro", Usuario.FechaRegistro);
            this.Command.Parameters.AddWithValue("@FechaInicioOperaciones", Usuario.FechaInicioOperaciones);
            this.Command.Parameters.AddWithValue("@VolumenMensualVentas", Usuario.VolumenMensualVentas);
            this.Command.Parameters.AddWithValue("@TelefonoOficina2", Usuario.TelefonoOficina2);
            this.Command.Parameters.AddWithValue("@EsTitular", Usuario.EsTitular);
            this.Command.Parameters.AddWithValue("@EsFirmante", Usuario.EsFirmante);
            this.Command.Parameters.AddWithValue("@CorreoDeEmpleo", Usuario.CorreoDeEmpleo);
            this.Command.Parameters.AddWithValue("@IdSolicitud", Usuario.IdSolicitud);
            this.Command.Parameters.AddWithValue("@IdCliente", Usuario.IdCliente);



            this.Command.Parameters.AddWithValue("@Ciudad", Usuario.Ciudad);
            this.Command.Parameters.AddWithValue("@Direccion", Usuario.Direccion);
            this.Command.Parameters.AddWithValue("@OtrosIngresos", Usuario.OtrosIngresos);
            this.Command.Parameters.AddWithValue("@FuenteOtrosIngresos", Usuario.FuenteOtrosIngresos);
            this.Command.Parameters.AddWithValue("@PaisEmpleo", Usuario.PaisEmpleo);
            this.Command.Parameters.AddWithValue("@ProvinciaEmpleo", Usuario.ProvinciaEmpleo);
            this.Command.Parameters.AddWithValue("@DistritoEmpleo", Usuario.DistritoEmpleo);
            this.Command.Parameters.AddWithValue("@CorregimientoEmpleo", Usuario.CorregimientoEmpleo);
            this.Command.Parameters.AddWithValue("@BarrioEmpleo", Usuario.BarrioEmpleo);
            this.Command.Parameters.AddWithValue("@ResidenciaEmpleo", Usuario.ResidenciaEmpleo);
            this.Command.Parameters.AddWithValue("@NumeroCasaEmpleo", Usuario.NumeroCasaEmpleo);
            this.Command.Parameters.AddWithValue("@UbicacionFacilEmpleo", Usuario.UbicacionFacilEmpleo);
            this.Command.Parameters.AddWithValue("@CalleEmpleo", Usuario.CalleEmpleo);
            this.Command.Parameters.AddWithValue("@TipoFirma", Usuario.TipoFirma);
            this.Command.Parameters.AddWithValue("@OrigenFondoTrabajo", Usuario.OrigenFondoTrabajo);
            this.Command.Parameters.AddWithValue("@OrigenFondoHerencia", Usuario.OrigenFondoHerencia);
            this.Command.Parameters.AddWithValue("@OrigenFondoVenta", Usuario.OrigenFondoVenta);
            this.Command.Parameters.AddWithValue("@OrigenFondoInversiones", Usuario.OrigenFondoInversiones);
            this.Command.Parameters.AddWithValue("@OrigenFondoServiciosPrestados", Usuario.OrigenFondoServiciosPrestados);
            this.Command.Parameters.AddWithValue("@OrigenFondoReciboDeDividendos", Usuario.OrigenFondoReciboDeDividendos);
            this.Command.Parameters.AddWithValue("@OrigenFondoEspecificacion", Usuario.OrigenFondoEspecificacion);
            this.Command.Parameters.AddWithValue("@MontoApertura", Usuario.MontoApertura);
            this.Command.Parameters.AddWithValue("@UsoDeLaCuenta", Usuario.UsoDeLaCuenta);
            this.Command.Parameters.AddWithValue("@ModoAperturaEfectivo", Usuario.ModoAperturaEfectivo);
            this.Command.Parameters.AddWithValue("@ModoAperturaTransferencia", Usuario.ModoAperturaTransferencia);
            this.Command.Parameters.AddWithValue("@ModoAperturaChequeLocal", Usuario.ModoAperturaChequeLocal);
            this.Command.Parameters.AddWithValue("@ModoAperturaChequeExtranjero", Usuario.ModoAperturaChequeExtranjero);
            this.Command.Parameters.AddWithValue("@ModoAperturaChequeGerenciaBanesco", Usuario.ModoAperturaChequeGerenciaBanesco);
            this.Command.Parameters.AddWithValue("@ModoAperturaChequeGerenciaOtroBanco", Usuario.ModoAperturaChequeGerenciaOtroBanco);
            this.Command.Parameters.AddWithValue("@ModoAperturaChequePropio", Usuario.ModoAperturaChequePropio);
            this.Command.Parameters.AddWithValue("@ModoAperturaDebitoACuenta", Usuario.ModoAperturaDebitoACuenta);
            this.Command.Parameters.AddWithValue("@ModoAperturaOtros", Usuario.ModoAperturaOtros);
            this.Command.Parameters.AddWithValue("@ModoAperturaOtrosEspecificacion", Usuario.ModoAperturaOtrosEspecificacion);
            this.Command.Parameters.AddWithValue("@NumeroDepositosRetirosAlMes", Usuario.NumeroDepositosRetirosAlMes);
            this.Command.Parameters.AddWithValue("@MontoDepositosRetirosAlMes", Usuario.MontoDepositosRetirosAlMes);
            this.Command.Parameters.AddWithValue("@SePermitenTransferencias", Usuario.SePermitenTransferencias);
            this.Command.Parameters.AddWithValue("@NumeroTransferenciasEmitidas", Usuario.NumeroTransferenciasEmitidas);
            this.Command.Parameters.AddWithValue("@MontoTransferenciasEmitidas", Usuario.MontoTransferenciasEmitidas);
            this.Command.Parameters.AddWithValue("@NumeroTransferenciasRecibidas", Usuario.NumeroTransferenciasRecibidas);
            this.Command.Parameters.AddWithValue("@MontoTransferenciasRecibidas", Usuario.MontoTransferenciasRecibidas);
            this.Command.Parameters.AddWithValue("@NumeroRetirosEnEfectivo", Usuario.NumeroRetirosEnEfectivo);
            this.Command.Parameters.AddWithValue("@MontoRetirosEnEfectivo", Usuario.MontoRetirosEnEfectivo);
            this.Command.Parameters.AddWithValue("@NumeroDepositosEnEfectivo", Usuario.NumeroDepositosEnEfectivo);
            this.Command.Parameters.AddWithValue("@MontoDepositosEnEfectivo", Usuario.MontoDepositosEnEfectivo);
            this.Command.Parameters.AddWithValue("@NumeroDepositosOtros", Usuario.NumeroDepositosOtros);
            this.Command.Parameters.AddWithValue("@MontoDepositosOtros", Usuario.MontoDepositosOtros);
            this.Command.Parameters.AddWithValue("@PaisTransferencia1", Usuario.PaisTransferencia1);
            this.Command.Parameters.AddWithValue("@PaisTransferencia1Env", Usuario.PaisTransferencia1Env);
            this.Command.Parameters.AddWithValue("@PaisTransferencia1Rec", Usuario.PaisTransferencia1Rec);
            this.Command.Parameters.AddWithValue("@PaisTransferencia2", Usuario.PaisTransferencia2);
            this.Command.Parameters.AddWithValue("@PaisTransferencia2Env", Usuario.PaisTransferencia2Env);
            this.Command.Parameters.AddWithValue("@PaisTransferencia2Rec", Usuario.PaisTransferencia2Rec);
            this.Command.Parameters.AddWithValue("@PaisTransferencia3", Usuario.PaisTransferencia3);
            this.Command.Parameters.AddWithValue("@PaisTransferencia3Env", Usuario.PaisTransferencia3Env);
            this.Command.Parameters.AddWithValue("@PaisTransferencia3Rec", Usuario.PaisTransferencia3Rec);
            this.Command.Parameters.AddWithValue("@PaisTransferencia4", Usuario.PaisTransferencia4);
            this.Command.Parameters.AddWithValue("@PaisTransferencia4Env", Usuario.PaisTransferencia4Env);
            this.Command.Parameters.AddWithValue("@PaisTransferencia4Rec", Usuario.PaisTransferencia4Rec);
            this.Command.Parameters.AddWithValue("@EsPEP", Usuario.EsPEP);
            this.Command.Parameters.AddWithValue("@EsIntermediario", Usuario.EsIntermediario);
            this.Command.Parameters.AddWithValue("@NombrePropietarioFondos", Usuario.NombrePropietarioFondos);
            this.Command.Parameters.AddWithValue("@TipoIdentificacionPropietarioFondos", Usuario.TipoIdentificacionPropietarioFondos);
            this.Command.Parameters.AddWithValue("@IdentificacionPropietarioFondos", Usuario.IdentificacionPropietarioFondos);
            this.Command.Parameters.AddWithValue("@DireccionEntregaVisaDebito", Usuario.DireccionEntregaVisaDebito);
            this.Command.Parameters.AddWithValue("@DireccionEntregaBancaEnLinea", Usuario.DireccionEntregaBancaEnLinea);
            this.Command.Parameters.AddWithValue("@SeguroFraudeVisaDebito", Usuario.SeguroFraudeVisaDebito);
            this.Command.Parameters.AddWithValue("@OrigenDeLosFondos", Usuario.OrigenDeLosFondos);
            this.Command.Parameters.AddWithValue("@Chequera", Usuario.Chequera);
            this.Command.Parameters.AddWithValue("@CantidadChequera", Usuario.CantidadChequera);
            this.Command.Parameters.AddWithValue("@EsBeneficiario", Usuario.EsBeneficiario);
            this.Command.Parameters.AddWithValue("@CiudadEmpleo", Usuario.CiudadEmpleo);
            this.Command.Parameters.AddWithValue("@ApartadoPostalEmpleo", Usuario.ApartadoPostalEmpleo);

            this.Command.Parameters.AddWithValue("@XMLmessage", Usuario.XMLMessage);
            try
            {
                int ret = Ejecutar();
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }

        public Mensaje GuardarClienteJuridica(UsuarioBase Usuario)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_GuardarClienteJuridica";
            this.Command.CommandType = CommandType.StoredProcedure;

            this.Command.Parameters.Clear();


            this.Command.Parameters.AddWithValue("@Identificacion", Usuario.Identificacion);
            this.Command.Parameters.AddWithValue("@SeguroSocial", Usuario.SeguroSocial);
            this.Command.Parameters.AddWithValue("@Cliente", Usuario.Cliente);
            this.Command.Parameters.AddWithValue("@TipoIdentificacion", Usuario.TipoIdentificacion);
            this.Command.Parameters.AddWithValue("@TipoCliente", Usuario.TipoCliente);
            this.Command.Parameters.AddWithValue("@Pais", Usuario.Pais);
            this.Command.Parameters.AddWithValue("@Email", Usuario.Email);
            this.Command.Parameters.AddWithValue("@Estado", Usuario.Estado);
            this.Command.Parameters.AddWithValue("@PC", Usuario.PC);
            this.Command.Parameters.AddWithValue("@PrimerNombre", Usuario.PrimerNombre);
            this.Command.Parameters.AddWithValue("@SegundoNombre", Usuario.SegundoNombre);
            this.Command.Parameters.AddWithValue("@PrimerApellido", Usuario.PrimerApellido);
            this.Command.Parameters.AddWithValue("@SegundoApellido", Usuario.SegundoApellido);
            this.Command.Parameters.AddWithValue("@ApellidoDeCasada", Usuario.ApellidoDeCasada);
            this.Command.Parameters.AddWithValue("@Sexo", Usuario.Sexo);
            this.Command.Parameters.AddWithValue("@EstadoCivil", Usuario.EstadoCivil);
            this.Command.Parameters.AddWithValue("@FechaDeNacimiento", Usuario.FechaDeNacimiento);
            this.Command.Parameters.AddWithValue("@Edad", Usuario.Edad);
            this.Command.Parameters.AddWithValue("@Provincia", Usuario.Provincia);
            this.Command.Parameters.AddWithValue("@Distrito", Usuario.Distrito);
            this.Command.Parameters.AddWithValue("@Corregimiento", Usuario.Corregimiento);
            this.Command.Parameters.AddWithValue("@Barrio", Usuario.Barrio);
            this.Command.Parameters.AddWithValue("@Calle", Usuario.Calle);
            this.Command.Parameters.AddWithValue("@Residencia", Usuario.Residencia);
            this.Command.Parameters.AddWithValue("@NumeroCasa", Usuario.NumeroCasa);
            this.Command.Parameters.AddWithValue("@ApartadoPostal", Usuario.ApartadoPostal);
            this.Command.Parameters.AddWithValue("@UbicacionFacilResidencia", Usuario.UbicacionFacilResidencia);
            this.Command.Parameters.AddWithValue("@ResidenteEnPanama", Usuario.ResidenteEnPanama);
            this.Command.Parameters.AddWithValue("@ClienteOtroPais", Usuario.ClienteOtroPais);
            this.Command.Parameters.AddWithValue("@TelefonoCasa", Usuario.TelefonoCasa);
            this.Command.Parameters.AddWithValue("@TelefonoCelular", Usuario.TelefonoCelular);
            this.Command.Parameters.AddWithValue("@OtroTelefono", Usuario.OtroTelefono);
            this.Command.Parameters.AddWithValue("@NombreEmpresa", Usuario.NombreEmpresa);
            this.Command.Parameters.AddWithValue("@CodigoIndustria", Usuario.CodigoIndustria);
            this.Command.Parameters.AddWithValue("@TipoEmpresa", Usuario.TipoEmpresa);
            this.Command.Parameters.AddWithValue("@TipoNegocio", Usuario.TipoNegocio);
            this.Command.Parameters.AddWithValue("@DireccionEmpleo", Usuario.DireccionEmpleo);
            this.Command.Parameters.AddWithValue("@TelefonoOficina", Usuario.TelefonoOficina);
            this.Command.Parameters.AddWithValue("@TelefonoFax", Usuario.TelefonoFax);
            this.Command.Parameters.AddWithValue("@IdentificacionContraloria", Usuario.IdentificacionContraloria);
            this.Command.Parameters.AddWithValue("@NumeroDeEmpleado", Usuario.NumeroDeEmpleado);
            this.Command.Parameters.AddWithValue("@FechaIngresoEmpleo", Usuario.FechaIngresoEmpleo);
            this.Command.Parameters.AddWithValue("@TiempoDeEmpleo", Usuario.TiempoDeEmpleo);
            this.Command.Parameters.AddWithValue("@RangoSalarial", Usuario.RangoSalarial);
            this.Command.Parameters.AddWithValue("@SalarioActual", Usuario.SalarioActual);
            this.Command.Parameters.AddWithValue("@NivelEducacion", Usuario.NivelEducacion);
            this.Command.Parameters.AddWithValue("@Profesion", Usuario.Profesion);
            this.Command.Parameters.AddWithValue("@FuenteDeIngreso", Usuario.FuenteDeIngreso);
            this.Command.Parameters.AddWithValue("@Cargo", Usuario.Cargo);
            this.Command.Parameters.AddWithValue("@TipoDeActividad", Usuario.TipoDeActividad);

            this.Command.Parameters.AddWithValue("@CuentaAhorros", Usuario.CuentaAhorros);
            this.Command.Parameters.AddWithValue("@CuentaCorriente", Usuario.CuentaCorriente);
            this.Command.Parameters.AddWithValue("@BancaEnLinea", Usuario.BancaEnLinea);
            this.Command.Parameters.AddWithValue("@VisaDebito", Usuario.VisaDebito);
            this.Command.Parameters.AddWithValue("@SucursalDePreferencia", Usuario.SucursalDePreferencia);
            this.Command.Parameters.AddWithValue("@NombreLegal", Usuario.NombreLegal);
            this.Command.Parameters.AddWithValue("@NombreComercial", Usuario.NombreComercial);
            this.Command.Parameters.AddWithValue("@NoRegistroDeSociedad", Usuario.NoRegistroDeSociedad);
            this.Command.Parameters.AddWithValue("@TipoSociedad", Usuario.TipoSociedad);
            this.Command.Parameters.AddWithValue("@PaisRegistroSociedad", Usuario.PaisRegistroSociedad);
            this.Command.Parameters.AddWithValue("@FechaRegistro", Usuario.FechaRegistro);
            this.Command.Parameters.AddWithValue("@FechaInicioOperaciones", Usuario.FechaInicioOperaciones);
            this.Command.Parameters.AddWithValue("@VolumenMensualVentas", Usuario.VolumenMensualVentas);
            this.Command.Parameters.AddWithValue("@TelefonoOficina2", Usuario.TelefonoOficina2);
            this.Command.Parameters.AddWithValue("@EsTitular", Usuario.EsTitular);
            this.Command.Parameters.AddWithValue("@EsFirmante", Usuario.EsFirmante);
            this.Command.Parameters.AddWithValue("@CorreoDeEmpleo", Usuario.CorreoDeEmpleo);
            this.Command.Parameters.AddWithValue("@IdSolicitud", Usuario.IdSolicitud);
            this.Command.Parameters.AddWithValue("@IdCliente", Usuario.IdCliente);




            this.Command.Parameters.AddWithValue("@Ciudad", Usuario.Ciudad);
            this.Command.Parameters.AddWithValue("@Direccion", Usuario.Direccion);
            this.Command.Parameters.AddWithValue("@OtrosIngresos", Usuario.OtrosIngresos);
            this.Command.Parameters.AddWithValue("@FuenteOtrosIngresos", Usuario.FuenteOtrosIngresos);
            this.Command.Parameters.AddWithValue("@PaisEmpleo", Usuario.PaisEmpleo);
            this.Command.Parameters.AddWithValue("@ProvinciaEmpleo", Usuario.ProvinciaEmpleo);
            this.Command.Parameters.AddWithValue("@DistritoEmpleo", Usuario.DistritoEmpleo);
            this.Command.Parameters.AddWithValue("@CorregimientoEmpleo", Usuario.CorregimientoEmpleo);
            this.Command.Parameters.AddWithValue("@BarrioEmpleo", Usuario.BarrioEmpleo);
            this.Command.Parameters.AddWithValue("@ResidenciaEmpleo", Usuario.ResidenciaEmpleo);
            this.Command.Parameters.AddWithValue("@NumeroCasaEmpleo", Usuario.NumeroCasaEmpleo);
            this.Command.Parameters.AddWithValue("@UbicacionFacilEmpleo", Usuario.UbicacionFacilEmpleo);
            this.Command.Parameters.AddWithValue("@CalleEmpleo", Usuario.CalleEmpleo);
            this.Command.Parameters.AddWithValue("@TipoFirma", Usuario.TipoFirma);
            this.Command.Parameters.AddWithValue("@OrigenFondoTrabajo", Usuario.OrigenFondoTrabajo);
            this.Command.Parameters.AddWithValue("@OrigenFondoHerencia", Usuario.OrigenFondoHerencia);
            this.Command.Parameters.AddWithValue("@OrigenFondoVenta", Usuario.OrigenFondoVenta);
            this.Command.Parameters.AddWithValue("@OrigenFondoInversiones", Usuario.OrigenFondoInversiones);
            this.Command.Parameters.AddWithValue("@OrigenFondoServiciosPrestados", Usuario.OrigenFondoServiciosPrestados);
            this.Command.Parameters.AddWithValue("@OrigenFondoReciboDeDividendos", Usuario.OrigenFondoReciboDeDividendos);
            this.Command.Parameters.AddWithValue("@OrigenFondoEspecificacion", Usuario.OrigenFondoEspecificacion);
            this.Command.Parameters.AddWithValue("@MontoApertura", Usuario.MontoApertura);
            this.Command.Parameters.AddWithValue("@UsoDeLaCuenta", Usuario.UsoDeLaCuenta);
            this.Command.Parameters.AddWithValue("@ModoAperturaEfectivo", Usuario.ModoAperturaEfectivo);
            this.Command.Parameters.AddWithValue("@ModoAperturaTransferencia", Usuario.ModoAperturaTransferencia);
            this.Command.Parameters.AddWithValue("@ModoAperturaChequeLocal", Usuario.ModoAperturaChequeLocal);
            this.Command.Parameters.AddWithValue("@ModoAperturaChequeExtranjero", Usuario.ModoAperturaChequeExtranjero);
            this.Command.Parameters.AddWithValue("@ModoAperturaChequeGerenciaBanesco", Usuario.ModoAperturaChequeGerenciaBanesco);
            this.Command.Parameters.AddWithValue("@ModoAperturaChequeGerenciaOtroBanco", Usuario.ModoAperturaChequeGerenciaOtroBanco);
            this.Command.Parameters.AddWithValue("@ModoAperturaChequePropio", Usuario.ModoAperturaChequePropio);
            this.Command.Parameters.AddWithValue("@ModoAperturaDebitoACuenta", Usuario.ModoAperturaDebitoACuenta);
            this.Command.Parameters.AddWithValue("@ModoAperturaOtros", Usuario.ModoAperturaOtros);
            this.Command.Parameters.AddWithValue("@ModoAperturaOtrosEspecificacion", Usuario.ModoAperturaOtrosEspecificacion);
            this.Command.Parameters.AddWithValue("@NumeroDepositosRetirosAlMes", Usuario.NumeroDepositosRetirosAlMes);
            this.Command.Parameters.AddWithValue("@MontoDepositosRetirosAlMes", Usuario.MontoDepositosRetirosAlMes);
            this.Command.Parameters.AddWithValue("@SePermitenTransferencias", Usuario.SePermitenTransferencias);
            this.Command.Parameters.AddWithValue("@NumeroTransferenciasEmitidas", Usuario.NumeroTransferenciasEmitidas);
            this.Command.Parameters.AddWithValue("@MontoTransferenciasEmitidas", Usuario.MontoTransferenciasEmitidas);
            this.Command.Parameters.AddWithValue("@NumeroTransferenciasRecibidas", Usuario.NumeroTransferenciasRecibidas);
            this.Command.Parameters.AddWithValue("@MontoTransferenciasRecibidas", Usuario.MontoTransferenciasRecibidas);
            this.Command.Parameters.AddWithValue("@NumeroRetirosEnEfectivo", Usuario.NumeroRetirosEnEfectivo);
            this.Command.Parameters.AddWithValue("@MontoRetirosEnEfectivo", Usuario.MontoRetirosEnEfectivo);
            this.Command.Parameters.AddWithValue("@NumeroDepositosEnEfectivo", Usuario.NumeroDepositosEnEfectivo);
            this.Command.Parameters.AddWithValue("@MontoDepositosEnEfectivo", Usuario.MontoDepositosEnEfectivo);
            this.Command.Parameters.AddWithValue("@NumeroDepositosOtros", Usuario.NumeroDepositosOtros);
            this.Command.Parameters.AddWithValue("@MontoDepositosOtros", Usuario.MontoDepositosOtros);
            this.Command.Parameters.AddWithValue("@PaisTransferencia1", Usuario.PaisTransferencia1);
            this.Command.Parameters.AddWithValue("@PaisTransferencia1Env", Usuario.PaisTransferencia1Env);
            this.Command.Parameters.AddWithValue("@PaisTransferencia1Rec", Usuario.PaisTransferencia1Rec);
            this.Command.Parameters.AddWithValue("@PaisTransferencia2", Usuario.PaisTransferencia2);
            this.Command.Parameters.AddWithValue("@PaisTransferencia2Env", Usuario.PaisTransferencia2Env);
            this.Command.Parameters.AddWithValue("@PaisTransferencia2Rec", Usuario.PaisTransferencia2Rec);
            this.Command.Parameters.AddWithValue("@PaisTransferencia3", Usuario.PaisTransferencia3);
            this.Command.Parameters.AddWithValue("@PaisTransferencia3Env", Usuario.PaisTransferencia3Env);
            this.Command.Parameters.AddWithValue("@PaisTransferencia3Rec", Usuario.PaisTransferencia3Rec);
            this.Command.Parameters.AddWithValue("@PaisTransferencia4", Usuario.PaisTransferencia4);
            this.Command.Parameters.AddWithValue("@PaisTransferencia4Env", Usuario.PaisTransferencia4Env);
            this.Command.Parameters.AddWithValue("@PaisTransferencia4Rec", Usuario.PaisTransferencia4Rec);
            this.Command.Parameters.AddWithValue("@EsPEP", Usuario.EsPEP);
            this.Command.Parameters.AddWithValue("@EsIntermediario", Usuario.EsIntermediario);
            this.Command.Parameters.AddWithValue("@NombrePropietarioFondos", Usuario.NombrePropietarioFondos);
            this.Command.Parameters.AddWithValue("@TipoIdentificacionPropietarioFondos", Usuario.TipoIdentificacionPropietarioFondos);
            this.Command.Parameters.AddWithValue("@IdentificacionPropietarioFondos", Usuario.IdentificacionPropietarioFondos);
            this.Command.Parameters.AddWithValue("@DireccionEntregaVisaDebito", Usuario.DireccionEntregaVisaDebito);
            this.Command.Parameters.AddWithValue("@DireccionEntregaBancaEnLinea", Usuario.DireccionEntregaBancaEnLinea);
            this.Command.Parameters.AddWithValue("@SeguroFraudeVisaDebito", Usuario.SeguroFraudeVisaDebito);
            this.Command.Parameters.AddWithValue("@OrigenDeLosFondos", Usuario.OrigenDeLosFondos);
            this.Command.Parameters.AddWithValue("@Chequera", Usuario.Chequera);
            this.Command.Parameters.AddWithValue("@CantidadChequera", Usuario.CantidadChequera);

            this.Command.Parameters.AddWithValue("@XMLmessage", Usuario.XMLMessage);

            try
            {
                int ret = Ejecutar();
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }

        public Mensaje BuscarSolicitudes(ref DataSet dsDatos, string Nombres, int NumeroDeSolicitud, string NumeroDeIdentificacion, decimal MontoDeVentas, string PaisDeOrigen, string PaisDeResidencia, string CuentaEnOtroPais, string TipoDeBanca)
        {


            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_BuscarSolicitudes";
            this.Command.CommandType = CommandType.StoredProcedure;

            this.Command.Parameters.AddWithValue("@Nombres", Nombres);
            this.Command.Parameters.AddWithValue("@NumeroDeSolicitud", NumeroDeSolicitud);
            this.Command.Parameters.AddWithValue("@NumeroDeIdentificacion", NumeroDeIdentificacion);
            this.Command.Parameters.AddWithValue("@MontoDeVentas", MontoDeVentas);
            this.Command.Parameters.AddWithValue("@PaisDeOrigen", PaisDeOrigen);
            this.Command.Parameters.AddWithValue("@PaisDeResidencia", PaisDeResidencia);
            this.Command.Parameters.AddWithValue("@CuentaEnOtroPais", CuentaEnOtroPais);
            this.Command.Parameters.AddWithValue("@TipoDeBanca", TipoDeBanca);
            try
            {
                int ret = this.Retrieve(dsDatos);
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }

        public Mensaje AtenderSolicitudes(UsuarioBase Usuario, string UsuarioModifica, String Observaciones, String Estado)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_AtenderSolicitudes";
            this.Command.CommandType = CommandType.StoredProcedure;
            this.Command.Parameters.Clear();
            this.Command.Parameters.AddWithValue("@IdCliente", Usuario.IdCliente);
            this.Command.Parameters.AddWithValue("@IdSolicitud", Usuario.IdSolicitud);
            this.Command.Parameters.AddWithValue("@UsuarioModifica", UsuarioModifica);
            this.Command.Parameters.AddWithValue("@Observaciones", Observaciones);
            this.Command.Parameters.AddWithValue("@Estado", Estado);


            try
            {
                int ret = Ejecutar();
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }

        public Mensaje ReferenciasPersonales(UsuarioBase Usuario, string Nombre, String Telefono, String Relacion, String Pais, String Provincia, String Distrito, String Corregimiento, String Barrio, String Calle, String Residencia, String NumeroCasa, String ApartadoPostal, String UbicacionFacilResidencia, String Email, String Direccion, String Ciudad)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_InsertarReferenciasPersonales";
            this.Command.CommandType = CommandType.StoredProcedure;
            this.Command.Parameters.Clear();
            this.Command.Parameters.AddWithValue("@IdCliente", Usuario.IdCliente);
            this.Command.Parameters.AddWithValue("@IdSolicitud", Usuario.IdSolicitud);
            this.Command.Parameters.AddWithValue("@Nombre", Nombre);
            this.Command.Parameters.AddWithValue("@Telefono", Telefono);
            this.Command.Parameters.AddWithValue("@Relacion", Relacion);
            this.Command.Parameters.AddWithValue("@Pais", Pais);
            this.Command.Parameters.AddWithValue("@Provincia", Provincia);
            this.Command.Parameters.AddWithValue("@Distrito", Distrito);
            this.Command.Parameters.AddWithValue("@Corregimiento", Corregimiento);
            this.Command.Parameters.AddWithValue("@Barrio", Barrio);
            this.Command.Parameters.AddWithValue("@Calle", Calle);
            this.Command.Parameters.AddWithValue("@Residencia", Residencia);
            this.Command.Parameters.AddWithValue("@NumeroCasa", NumeroCasa);
            this.Command.Parameters.AddWithValue("@ApartadoPostal", ApartadoPostal);
            this.Command.Parameters.AddWithValue("@UbicacionFacilResidencia", UbicacionFacilResidencia);
            this.Command.Parameters.AddWithValue("@Email", Email);

            this.Command.Parameters.AddWithValue("@Direccion", Direccion);
            this.Command.Parameters.AddWithValue("@Ciudad", Ciudad);


            try
            {
                int ret = Ejecutar();
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }


        public Mensaje ActualizarReferenciasPersonales(UsuarioBase Usuario, string Nombre, String Telefono, String Relacion, String Pais, String Provincia, String Distrito, String Corregimiento, String Barrio, String Calle, String Residencia, String NumeroCasa, String ApartadoPostal, String UbicacionFacilResidencia, String Email, String Direccion, String Ciudad, int Id)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_ActualizarReferenciasPersonales";
            this.Command.CommandType = CommandType.StoredProcedure;
            this.Command.Parameters.Clear();
            this.Command.Parameters.AddWithValue("@IdCliente", Usuario.IdCliente);
            this.Command.Parameters.AddWithValue("@IdSolicitud", Usuario.IdSolicitud);
            this.Command.Parameters.AddWithValue("@Nombre", Nombre);
            this.Command.Parameters.AddWithValue("@Telefono", Telefono);
            this.Command.Parameters.AddWithValue("@Relacion", Relacion);
            this.Command.Parameters.AddWithValue("@Pais", Pais);
            this.Command.Parameters.AddWithValue("@Provincia", Provincia);
            this.Command.Parameters.AddWithValue("@Distrito", Distrito);
            this.Command.Parameters.AddWithValue("@Corregimiento", Corregimiento);
            this.Command.Parameters.AddWithValue("@Barrio", Barrio);
            this.Command.Parameters.AddWithValue("@Calle", Calle);
            this.Command.Parameters.AddWithValue("@Residencia", Residencia);
            this.Command.Parameters.AddWithValue("@NumeroCasa", NumeroCasa);
            this.Command.Parameters.AddWithValue("@ApartadoPostal", ApartadoPostal);
            this.Command.Parameters.AddWithValue("@UbicacionFacilResidencia", UbicacionFacilResidencia);
            this.Command.Parameters.AddWithValue("@Email", Email);

            this.Command.Parameters.AddWithValue("@Direccion", Direccion);
            this.Command.Parameters.AddWithValue("@Ciudad", Ciudad);
            this.Command.Parameters.AddWithValue("@Id", Id);


            try
            {
                int ret = Ejecutar();
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }


        public Mensaje CambiarEstadoSolicitud(UsuarioBase Usuario)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_CambiarEstadoSolicitud";
            this.Command.CommandType = CommandType.StoredProcedure;
            this.Command.Parameters.Clear();
            this.Command.Parameters.AddWithValue("@IdSolicitud", Usuario.IdSolicitud);
            this.Command.Parameters.AddWithValue("@IdCliente", Usuario.IdCliente);



            try
            {
                int ret = Ejecutar();
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }

        public Mensaje CambiarEstadoSolicitudCuentaCreada(UsuarioBase Usuario, string UsuarioModifica)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_CambiarEstadoSolicitud_CuentaCreada";
            this.Command.CommandType = CommandType.StoredProcedure;
            this.Command.Parameters.Clear();
            this.Command.Parameters.AddWithValue("@IdSolicitud", Usuario.IdSolicitud);
            this.Command.Parameters.AddWithValue("@IdCliente", Usuario.IdCliente);
            this.Command.Parameters.AddWithValue("@UsuarioModifica", UsuarioModifica);
            try
            {
                int ret = Ejecutar();
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }

        public Mensaje AccionistaRepresentanteDirectiva(UsuarioBase Usuario, string Nombre, String Identificacion, String Sexo, String Cargo, String Pais, String Provincia, String Distrito, String Corregimiento, String Nacionalidad, String DireccionPrincipal, String Telefono1, String Telefono2, String Telefono3, string EsJuntaDirectiva, string EsAccionista, string EsRepresentanteLegal, string Tipo_ARD, String Barrio, String Calle, String Residencia, String NumeroCasa, String ApartadoPostal, String UbicacionFacilResidencia, String Email, String Direccion, String Ciudad, DateTime FechaDeNacimiento)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_InsertarAccionistaRepresentanteDirectiva";
            this.Command.CommandType = CommandType.StoredProcedure;
            this.Command.Parameters.Clear();
            this.Command.Parameters.AddWithValue("@IdCliente", Usuario.IdCliente);
            this.Command.Parameters.AddWithValue("@IdSolicitud", Usuario.IdSolicitud);
            this.Command.Parameters.AddWithValue("@Nombre", Nombre);
            this.Command.Parameters.AddWithValue("@Identificacion", Identificacion);
            this.Command.Parameters.AddWithValue("@Cargo", Cargo);
            this.Command.Parameters.AddWithValue("@Sexo", Sexo);
            this.Command.Parameters.AddWithValue("@Pais", Pais);
            this.Command.Parameters.AddWithValue("@Provincia", Provincia);
            this.Command.Parameters.AddWithValue("@Distrito", Distrito);
            this.Command.Parameters.AddWithValue("@Corregimiento", Corregimiento);
            this.Command.Parameters.AddWithValue("@Nacionalidad", Nacionalidad);
            this.Command.Parameters.AddWithValue("@DireccionPrincipal", DireccionPrincipal);
            this.Command.Parameters.AddWithValue("@Telefono1", Telefono1);
            this.Command.Parameters.AddWithValue("@Telefono2", Telefono2);
            this.Command.Parameters.AddWithValue("@Telefono3", Telefono3);
            this.Command.Parameters.AddWithValue("@EsJuntaDirectiva", EsJuntaDirectiva);
            this.Command.Parameters.AddWithValue("@EsAccionista", EsAccionista);
            this.Command.Parameters.AddWithValue("@EsRepresentanteLegal", EsRepresentanteLegal);
            this.Command.Parameters.AddWithValue("@Tipo_ARD", Tipo_ARD);

            this.Command.Parameters.AddWithValue("@Barrio", Barrio);
            this.Command.Parameters.AddWithValue("@Calle", Calle);
            this.Command.Parameters.AddWithValue("@Residencia", Residencia);
            this.Command.Parameters.AddWithValue("@NumeroCasa", NumeroCasa);
            this.Command.Parameters.AddWithValue("@ApartadoPostal", ApartadoPostal);
            this.Command.Parameters.AddWithValue("@UbicacionFacilResidencia", UbicacionFacilResidencia);
            this.Command.Parameters.AddWithValue("@Email", Email);
            this.Command.Parameters.AddWithValue("@Direccion", Direccion);
            this.Command.Parameters.AddWithValue("@Ciudad", Ciudad);
            this.Command.Parameters.AddWithValue("@FechaDeNacimiento", FechaDeNacimiento);




            try
            {
                int ret = Ejecutar();
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }

        public Mensaje GuardarPEPs(UsuarioBase Usuario, string Nombre, String Identificacion, String Nacionalidad, String TipoRelacion, String Cargo, String Pais)
        {

            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_InsertarPEPs";
            this.Command.CommandType = CommandType.StoredProcedure;
            this.Command.Parameters.Clear();
            this.Command.Parameters.AddWithValue("@IdCliente", Usuario.IdCliente);
            this.Command.Parameters.AddWithValue("@Nombre", Nombre);
            this.Command.Parameters.AddWithValue("@Identificacion", Identificacion);
            this.Command.Parameters.AddWithValue("@Nacionalidad", Nacionalidad);
            this.Command.Parameters.AddWithValue("@TipoRelacion", TipoRelacion);
            this.Command.Parameters.AddWithValue("@CargoPolitico", Cargo);
            this.Command.Parameters.AddWithValue("@PaisCargoPolitico", Pais);

            try
            {
                int ret = Ejecutar();
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }

        public Mensaje GuardarBeneficiarios(UsuarioBase Usuario, string Nombre, String Identificacion, String Direccion, String Parentesco, String Telefono, String PorcentajeBeneficio, String MenorDeEdad, String NombreTutor, String IdentificacionTutor, String TelefonoTutor, String DireccionTutor)
        {

            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_InsertarBeneficiarios";
            this.Command.CommandType = CommandType.StoredProcedure;
            this.Command.Parameters.Clear();
            this.Command.Parameters.AddWithValue("@IdCliente", Usuario.IdCliente);
            this.Command.Parameters.AddWithValue("@Nombre", Nombre);
            this.Command.Parameters.AddWithValue("@Identificacion", Identificacion);
            this.Command.Parameters.AddWithValue("@Direccion", Direccion);
            this.Command.Parameters.AddWithValue("@Parentesco", Parentesco);
            this.Command.Parameters.AddWithValue("@Telefono", Telefono);
            this.Command.Parameters.AddWithValue("@PorcentajeBeneficio", PorcentajeBeneficio);
            this.Command.Parameters.AddWithValue("@MenorDeEdad", MenorDeEdad);
            this.Command.Parameters.AddWithValue("@NombreTutor", NombreTutor);
            this.Command.Parameters.AddWithValue("@IdentificacionTutor ", IdentificacionTutor);
            this.Command.Parameters.AddWithValue("@TelefonoTutor ", TelefonoTutor);
            this.Command.Parameters.AddWithValue("@DireccionTutor", DireccionTutor);


            try
            {
                int ret = Ejecutar();
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }

        public Mensaje GuardarTitulares(UsuarioBase Usuario, String Identificacion, String TipoIdentificacion, String SeguroSocial, String PrimerNombre, String SegundoNombre, String PrimerApellido, String SegundoApellido, String ApellidoDeCasada, String Sexo, String EstadoCivil, DateTime FechaDeNacimiento, String Pais, String Provincia, String Distrito, String Corregimiento, String Barrio, String Calle, String Residencia, String NumeroCasa, String ApartadoPostal, String UbicacionFacilResidencia, String Email, String Telefono1, String Telefono2, String Telefono3, String NombreEmpresa, String CodigoIndustria, String TipoEmpresa, String TipoNegocio, String DireccionEmpleo, String TelefonoOficina, String TelefonoFax, String IdentificacionContraloria, String NumeroDeEmpleado, DateTime FechaIngresoEmpleo, String TiempoDeEmpleo, String RangoSalarial, Decimal SalarioActual, String NivelEducacion, String Profesion, String FuenteDeIngreso, String Cargo, String TipoDeActividad, String CorreoDeEmpleo, String Direccion, String Ciudad, String PaisEmpleo, String ProvinciaEmpleo, String DistritoEmpleo, String CorregimientoEmpleo, String BarrioEmpleo, String CalleEmpleo, String ResidenciaEmpleo, String NoCasaEmpleo, String ApartadoPostalEmpleo, String UbicacionFacilEmpleo, String CiudadEmpleo) //PaisEmpleo, ProvinciaEmpleo, DistritoEmpleo, CorregimientoEmpleo, BarrioEmpleo, CalleEmpleo, ResidenciaEmpleo, NoCasaEmpleo, ApartadoPostalEmpleo, UbicacionFacilEmpleo, CiudadEmpleo
        {
            Mensaje retMensaje = new Mensaje();
            this.Command.CommandText = "pcBanesco_InsertarTitulares";
            this.Command.CommandType = CommandType.StoredProcedure;
            this.Command.Parameters.Clear();
            this.Command.Parameters.AddWithValue("@IdCliente", Usuario.IdCliente);
            this.Command.Parameters.AddWithValue("@Identificacion", Identificacion);
            this.Command.Parameters.AddWithValue("@TipoIdentificacion", TipoIdentificacion);
            this.Command.Parameters.AddWithValue("@SeguroSocial", SeguroSocial);
            this.Command.Parameters.AddWithValue("@PrimerNombre", PrimerNombre);
            this.Command.Parameters.AddWithValue("@SegundoNombre", SegundoNombre);
            this.Command.Parameters.AddWithValue("@PrimerApellido", PrimerApellido);
            this.Command.Parameters.AddWithValue("@SegundoApellido", SegundoApellido);
            this.Command.Parameters.AddWithValue("@ApellidoDeCasada", ApellidoDeCasada);
            this.Command.Parameters.AddWithValue("@Sexo", Sexo);
            this.Command.Parameters.AddWithValue("@EstadoCivil", EstadoCivil);
            this.Command.Parameters.AddWithValue("@FechaDeNacimiento", FechaDeNacimiento);
            this.Command.Parameters.AddWithValue("@Pais", Pais);
            this.Command.Parameters.AddWithValue("@Provincia", Provincia);
            this.Command.Parameters.AddWithValue("@Distrito", Distrito);
            this.Command.Parameters.AddWithValue("@Corregimiento", Corregimiento);
            this.Command.Parameters.AddWithValue("@Barrio", Barrio);
            this.Command.Parameters.AddWithValue("@Calle", Calle);
            this.Command.Parameters.AddWithValue("@Residencia", Residencia);
            this.Command.Parameters.AddWithValue("@NumeroCasa", NumeroCasa);
            this.Command.Parameters.AddWithValue("@ApartadoPostal", ApartadoPostal);
            this.Command.Parameters.AddWithValue("@UbicacionFacilResidencia", UbicacionFacilResidencia);
            this.Command.Parameters.AddWithValue("@Email", Email);
            this.Command.Parameters.AddWithValue("@Telefono1", Telefono1);
            this.Command.Parameters.AddWithValue("@Telefono2", Telefono2);
            this.Command.Parameters.AddWithValue("@Telefono3", Telefono3);
            this.Command.Parameters.AddWithValue("@NombreEmpresa", NombreEmpresa);
            this.Command.Parameters.AddWithValue("@CodigoIndustria", CodigoIndustria);
            this.Command.Parameters.AddWithValue("@TipoEmpresa", TipoEmpresa);
            this.Command.Parameters.AddWithValue("@TipoNegocio", TipoNegocio);
            this.Command.Parameters.AddWithValue("@DireccionEmpleo", DireccionEmpleo);
            this.Command.Parameters.AddWithValue("@TelefonoOficina", TelefonoOficina);
            this.Command.Parameters.AddWithValue("@TelefonoFax", TelefonoFax);
            this.Command.Parameters.AddWithValue("@IdentificacionContraloria", IdentificacionContraloria);
            this.Command.Parameters.AddWithValue("@NumeroDeEmpleado", NumeroDeEmpleado);
            this.Command.Parameters.AddWithValue("@FechaIngresoEmpleo", FechaIngresoEmpleo);
            this.Command.Parameters.AddWithValue("@TiempoDeEmpleo", TiempoDeEmpleo);
            this.Command.Parameters.AddWithValue("@RangoSalarial", RangoSalarial);
            this.Command.Parameters.AddWithValue("@SalarioActual", SalarioActual);
            this.Command.Parameters.AddWithValue("@NivelEducacion", NivelEducacion);
            this.Command.Parameters.AddWithValue("@Profesion", Profesion);
            this.Command.Parameters.AddWithValue("@FuenteDeIngreso", FuenteDeIngreso);
            this.Command.Parameters.AddWithValue("@Cargo", Cargo);
            this.Command.Parameters.AddWithValue("@TipoDeActividad", TipoDeActividad);
            this.Command.Parameters.AddWithValue("@CorreoDeEmpleo", CorreoDeEmpleo);

            this.Command.Parameters.AddWithValue("@Direccion", Direccion);
            this.Command.Parameters.AddWithValue("@Ciudad", Ciudad);



            this.Command.Parameters.AddWithValue("@PaisEmpleo", PaisEmpleo);
            this.Command.Parameters.AddWithValue("@ProvinciaEmpleo", ProvinciaEmpleo);
            this.Command.Parameters.AddWithValue("@DistritoEmpleo", DistritoEmpleo);
            this.Command.Parameters.AddWithValue("@CorregimientoEmpleo", CorregimientoEmpleo);
            this.Command.Parameters.AddWithValue("@CalleEmpleo", CalleEmpleo);
            this.Command.Parameters.AddWithValue("@BarrioEmpleo", BarrioEmpleo);
            this.Command.Parameters.AddWithValue("@ResidenciaEmpleo", ResidenciaEmpleo);
            this.Command.Parameters.AddWithValue("@NumeroCasaEmpleo", NoCasaEmpleo);
            this.Command.Parameters.AddWithValue("@UbicacionFacilEmpleo", UbicacionFacilEmpleo);
            this.Command.Parameters.AddWithValue("@ApartadoPostalEmpleo", ApartadoPostalEmpleo);
            this.Command.Parameters.AddWithValue("@CiudadEmpleo", CiudadEmpleo);


            try
            {
                int ret = Ejecutar();
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }

        public Mensaje GuardarFirmantes(UsuarioBase Usuario, String Identificacion, String TipoIdentificacion, String SeguroSocial, String PrimerNombre, String SegundoNombre, String PrimerApellido, String SegundoApellido, String ApellidoDeCasada, String Sexo, String EstadoCivil, DateTime FechaDeNacimiento, String Pais, String Provincia, String Distrito, String Corregimiento, String Barrio, String Calle, String Residencia, String NumeroCasa, String ApartadoPostal, String UbicacionFacilResidencia, String Email, String Telefono1, String Telefono2, String Telefono3, String NombreEmpresa, String CodigoIndustria, String TipoEmpresa, String TipoNegocio, String DireccionEmpleo, String TelefonoOficina, String TelefonoFax, String IdentificacionContraloria, String NumeroDeEmpleado, DateTime FechaIngresoEmpleo, String TiempoDeEmpleo, String RangoSalarial, Decimal SalarioActual, String NivelEducacion, String Profesion, String FuenteDeIngreso, String Cargo, String TipoDeActividad, String CorreoDeEmpleo, String Direccion, String Ciudad, String PaisEmpleo, String ProvinciaEmpleo, String DistritoEmpleo, String CorregimientoEmpleo, String BarrioEmpleo, String CalleEmpleo, String ResidenciaEmpleo, String NoCasaEmpleo, String ApartadoPostalEmpleo, String UbicacionFacilEmpleo, String CiudadEmpleo)
        {
            Mensaje retMensaje = new Mensaje();
            this.Command.CommandText = "pcBanesco_InsertarFirmantes";
            this.Command.CommandType = CommandType.StoredProcedure;
            this.Command.Parameters.Clear();
            this.Command.Parameters.AddWithValue("@IdCliente", Usuario.IdCliente);
            this.Command.Parameters.AddWithValue("@Identificacion", Identificacion);
            this.Command.Parameters.AddWithValue("@TipoIdentificacion", TipoIdentificacion);
            this.Command.Parameters.AddWithValue("@SeguroSocial", SeguroSocial);
            this.Command.Parameters.AddWithValue("@PrimerNombre", PrimerNombre);
            this.Command.Parameters.AddWithValue("@SegundoNombre", SegundoNombre);
            this.Command.Parameters.AddWithValue("@PrimerApellido", PrimerApellido);
            this.Command.Parameters.AddWithValue("@SegundoApellido", SegundoApellido);
            this.Command.Parameters.AddWithValue("@ApellidoDeCasada", ApellidoDeCasada);
            this.Command.Parameters.AddWithValue("@Sexo", Sexo);
            this.Command.Parameters.AddWithValue("@EstadoCivil", EstadoCivil);
            this.Command.Parameters.AddWithValue("@FechaDeNacimiento", FechaDeNacimiento);
            this.Command.Parameters.AddWithValue("@Pais", Pais);
            this.Command.Parameters.AddWithValue("@Provincia", Provincia);
            this.Command.Parameters.AddWithValue("@Distrito", Distrito);
            this.Command.Parameters.AddWithValue("@Corregimiento", Corregimiento);
            this.Command.Parameters.AddWithValue("@Barrio", Barrio);
            this.Command.Parameters.AddWithValue("@Calle", Calle);
            this.Command.Parameters.AddWithValue("@Residencia", Residencia);
            this.Command.Parameters.AddWithValue("@NumeroCasa", NumeroCasa);
            this.Command.Parameters.AddWithValue("@ApartadoPostal", ApartadoPostal);
            this.Command.Parameters.AddWithValue("@UbicacionFacilResidencia", UbicacionFacilResidencia);
            this.Command.Parameters.AddWithValue("@Email", Email);
            this.Command.Parameters.AddWithValue("@Telefono1", Telefono1);
            this.Command.Parameters.AddWithValue("@Telefono2", Telefono2);
            this.Command.Parameters.AddWithValue("@Telefono3", Telefono3);
            this.Command.Parameters.AddWithValue("@NombreEmpresa", NombreEmpresa);
            this.Command.Parameters.AddWithValue("@CodigoIndustria", CodigoIndustria);
            this.Command.Parameters.AddWithValue("@TipoEmpresa", TipoEmpresa);
            this.Command.Parameters.AddWithValue("@TipoNegocio", TipoNegocio);
            this.Command.Parameters.AddWithValue("@DireccionEmpleo", DireccionEmpleo);
            this.Command.Parameters.AddWithValue("@TelefonoOficina", TelefonoOficina);
            this.Command.Parameters.AddWithValue("@TelefonoFax", TelefonoFax);
            this.Command.Parameters.AddWithValue("@IdentificacionContraloria", IdentificacionContraloria);
            this.Command.Parameters.AddWithValue("@NumeroDeEmpleado", NumeroDeEmpleado);
            this.Command.Parameters.AddWithValue("@FechaIngresoEmpleo", FechaIngresoEmpleo);
            this.Command.Parameters.AddWithValue("@TiempoDeEmpleo", TiempoDeEmpleo);
            this.Command.Parameters.AddWithValue("@RangoSalarial", RangoSalarial);
            this.Command.Parameters.AddWithValue("@SalarioActual", SalarioActual);
            this.Command.Parameters.AddWithValue("@NivelEducacion", NivelEducacion);
            this.Command.Parameters.AddWithValue("@Profesion", Profesion);
            this.Command.Parameters.AddWithValue("@FuenteDeIngreso", FuenteDeIngreso);
            this.Command.Parameters.AddWithValue("@Cargo", Cargo);
            this.Command.Parameters.AddWithValue("@TipoDeActividad", TipoDeActividad);
            this.Command.Parameters.AddWithValue("@CorreoDeEmpleo", CorreoDeEmpleo);


            this.Command.Parameters.AddWithValue("@Direccion", Direccion);
            this.Command.Parameters.AddWithValue("@Ciudad", Ciudad);


            this.Command.Parameters.AddWithValue("@PaisEmpleo", PaisEmpleo);
            this.Command.Parameters.AddWithValue("@ProvinciaEmpleo", ProvinciaEmpleo);
            this.Command.Parameters.AddWithValue("@DistritoEmpleo", DistritoEmpleo);
            this.Command.Parameters.AddWithValue("@CorregimientoEmpleo", CorregimientoEmpleo);
            this.Command.Parameters.AddWithValue("@CalleEmpleo", CalleEmpleo);
            this.Command.Parameters.AddWithValue("@BarrioEmpleo", BarrioEmpleo);
            this.Command.Parameters.AddWithValue("@ResidenciaEmpleo", ResidenciaEmpleo);
            this.Command.Parameters.AddWithValue("@NumeroCasaEmpleo", NoCasaEmpleo);
            this.Command.Parameters.AddWithValue("@UbicacionFacilEmpleo", UbicacionFacilEmpleo);
            this.Command.Parameters.AddWithValue("@ApartadoPostalEmpleo", ApartadoPostalEmpleo);
            this.Command.Parameters.AddWithValue("@CiudadEmpleo", CiudadEmpleo);

            try
            {
                int ret = Ejecutar();
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }

        public Mensaje BuscarOFAC(ref DataSet dsDatos, string Nombre)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_BuscarOFAC";
            this.Command.CommandType = CommandType.StoredProcedure;
            this.Command.Parameters.Clear();
            this.Command.Parameters.AddWithValue("@Nombre", Nombre);
            try
            {
                int ret = this.Retrieve(dsDatos);
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }



            return retMensaje;
        }

        public Mensaje BuscarListaPropia(ref DataSet dsDatos, string Nombre)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_BuscarListaPropia";
            this.Command.CommandType = CommandType.StoredProcedure;
            this.Command.Parameters.Clear();
            this.Command.Parameters.AddWithValue("@Nombre", Nombre);
            try
            {
                int ret = this.Retrieve(dsDatos);
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }

            return retMensaje;
        }

        public Mensaje BuscarOtrosClientes(ref DataSet dsDatos, int IdSolicitud)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "RevisarClientePorSolicitud";
            this.Command.CommandType = CommandType.StoredProcedure;
            this.Command.Parameters.Clear();
            this.Command.Parameters.AddWithValue("@IdSolicitud", IdSolicitud);
            try
            {
                int ret = this.Retrieve(dsDatos);
            }
            catch (SqlException sex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }

            return retMensaje;
        }

        public Mensaje NuevaConsultaValidaciones(ref int IdConsulta, String IdCliente, String UsuarioBanesco, String EsOFAC, String EsListaPropia)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_NuevaConsultaValidaciones";
            this.Command.CommandType = CommandType.StoredProcedure;
            this.Command.Parameters.Clear();
            //this.Command.Parameters.AddWithValue("@IdConsulta", IdConsulta);
            this.Command.Parameters.AddWithValue("@IdCliente", IdCliente);
            this.Command.Parameters.AddWithValue("@UsuarioBanesco", UsuarioBanesco);
            this.Command.Parameters.AddWithValue("@EsOFAC", EsOFAC);
            this.Command.Parameters.AddWithValue("@EsListaPropia", EsListaPropia);
            try
            {
                int ret = int.Parse(this.EjecutarScalar().ToString());
                IdConsulta = ret;
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }

            return retMensaje;
        }

        public Mensaje CoincideConsultaValidaciones(String Coincide, int IdConsulta)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_CoincideConsultaValidaciones";
            this.Command.CommandType = CommandType.StoredProcedure;

            this.Command.Parameters.Clear();
            this.Command.Parameters.AddWithValue("@Coincide", Coincide);
            this.Command.Parameters.AddWithValue("@IdConsulta", IdConsulta);

            try
            {
                int ret = Ejecutar();
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;

        }

        public Mensaje GuardarConsultaOFAC(int IdConsultaOFAC, String Nombre, String Direccion1, String Direccion2, String Direccion3, String Provincia, String Pais, String F7, String FechaInicial, String FuentedeDondeProvieneLaInformacion, String F10, String F11, String F12, String FechaPrimeraActualizacion, String ComentariosAdicionales, String F15, String F16, String FechaSegundaActualizacion, String F18, String F19)
        {
            Mensaje retMensaje = new Mensaje();
            this.Command.CommandText = "pcBanesco_GuardarConsultaOFAC";
            this.Command.CommandType = CommandType.StoredProcedure;
            this.Command.Parameters.Clear();
            this.Command.Parameters.AddWithValue("@IdConsultaOFAC", IdConsultaOFAC);
            this.Command.Parameters.AddWithValue("@Nombre", Nombre);
            this.Command.Parameters.AddWithValue("@Direccion1", Direccion1);
            this.Command.Parameters.AddWithValue("@Direccion2", Direccion2);
            this.Command.Parameters.AddWithValue("@Direccion3", Direccion3);
            this.Command.Parameters.AddWithValue("@Provincia", Provincia);
            this.Command.Parameters.AddWithValue("@Pais", Pais);
            this.Command.Parameters.AddWithValue("@F7", F7);
            this.Command.Parameters.AddWithValue("@FechaInicial", FechaInicial);
            this.Command.Parameters.AddWithValue("@FuentedeDondeProvieneLaInformacion", FuentedeDondeProvieneLaInformacion);
            this.Command.Parameters.AddWithValue("@F10", F10);
            this.Command.Parameters.AddWithValue("@F11", F11);
            this.Command.Parameters.AddWithValue("@F12", F12);
            this.Command.Parameters.AddWithValue("@FechaPrimeraActualizacion", FechaPrimeraActualizacion);
            this.Command.Parameters.AddWithValue("@ComentariosAdicionales", ComentariosAdicionales);
            this.Command.Parameters.AddWithValue("@F15", F15);
            this.Command.Parameters.AddWithValue("@F16", F16);
            this.Command.Parameters.AddWithValue("@FechaSegundaActualizacion", FechaSegundaActualizacion);
            this.Command.Parameters.AddWithValue("@F18", F18);
            this.Command.Parameters.AddWithValue("@F19 ", F19);

            try
            {
                int ret = Ejecutar();
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;

        }


        public Mensaje GuardarConsultaListaPropia(int IdConsultaListaPropia, String nombre, String localidad, String InformacionAdicional1, String InformacionAdicional2, String provincia, String Pais, String F7, String fechaEntrada, String F9, String volúmen, String página, String F12, String fechaActualizacion, String F14, String tipo, String F16, String Fecha, String F18, String cuenta)
        {
            Mensaje retMensaje = new Mensaje();
            this.Command.CommandText = "pcBanesco_GuardarConsultaListaPropia";
            this.Command.CommandType = CommandType.StoredProcedure;
            this.Command.Parameters.Clear();
            this.Command.Parameters.AddWithValue("@IdConsultaListaPropia", IdConsultaListaPropia);
            this.Command.Parameters.AddWithValue("@nombre", nombre);
            this.Command.Parameters.AddWithValue("@localidad", localidad);
            this.Command.Parameters.AddWithValue("@InformacionAdicional1", InformacionAdicional1);
            this.Command.Parameters.AddWithValue("@InformacionAdicional2", InformacionAdicional2);
            this.Command.Parameters.AddWithValue("@provincia", provincia);
            this.Command.Parameters.AddWithValue("@Pais", Pais);
            this.Command.Parameters.AddWithValue("@F7", F7);
            this.Command.Parameters.AddWithValue("@fechaEntrada", fechaEntrada);
            this.Command.Parameters.AddWithValue("@F9", F9);
            this.Command.Parameters.AddWithValue("@volúmen", volúmen);
            this.Command.Parameters.AddWithValue("@página", página);
            this.Command.Parameters.AddWithValue("@F12", F12);
            this.Command.Parameters.AddWithValue("@fechaActualizacion", fechaActualizacion);
            this.Command.Parameters.AddWithValue("@F14", F14);
            this.Command.Parameters.AddWithValue("@tipo", tipo);
            this.Command.Parameters.AddWithValue("@F16", F16);
            this.Command.Parameters.AddWithValue("@Fecha", Fecha);
            this.Command.Parameters.AddWithValue("@F18", F18);
            this.Command.Parameters.AddWithValue("@cuenta ", cuenta);

            try
            {
                int ret = Ejecutar();
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;

        }


        #region UsuariosSistema

        /// <summary>
        /// Registro de informacion para un nuevo usuario del sistema
        /// </summary>
        /// <param name="UsuariosSistema"></param>
        /// <returns></returns>
        public Mensaje UsuariosSistema_GuardarInformacionUsuarios(UsuarioSistema UsuariosSistema)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_Usuarios_RegistrarInformacionUsuario";
            this.Command.CommandType = CommandType.StoredProcedure;

            this.Command.Parameters.Clear();


            this.Command.Parameters.AddWithValue("@UserName", UsuariosSistema.NombreUsuario);
            this.Command.Parameters.AddWithValue("@Clave", UsuariosSistema.Contraseña);
            this.Command.Parameters.AddWithValue("@UsuarioSistema", UsuariosSistema.NombreUsuarioSistema);
            this.Command.Parameters.AddWithValue("@Nombre", UsuariosSistema.NombreCompleto);
            this.Command.Parameters.AddWithValue("@Telefono", UsuariosSistema.NumeroTelefono);
            this.Command.Parameters.AddWithValue("@Email", UsuariosSistema.CorreoElectronico);
            this.Command.Parameters.AddWithValue("@Estado", UsuariosSistema.Estado);
            this.Command.Parameters.AddWithValue("@UsuCre", UsuariosSistema.IDUsuarioCreador);
            this.Command.Parameters.AddWithValue("@FecCre", UsuariosSistema.FechaCreacion);
            this.Command.Parameters.AddWithValue("@UsuMod", UsuariosSistema.IDUsuarioModificacion);
            this.Command.Parameters.AddWithValue("@UltFecMod", UsuariosSistema.FechaModificacion);
            this.Command.Parameters.AddWithValue("@UltFecModClave", UsuariosSistema.FechaModificacionContraseña);




            try
            {
                int ret = Ejecutar();
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }

        /// <summary>
        /// Actualizacion de informacion para un usuario del sistema
        /// </summary>
        /// <param name="UsuariosSistema"></param>
        /// <returns></returns>
        public Mensaje UsuariosSistema_ActualizarInformacionUsuarios(UsuarioSistema UsuariosSistema)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_Usuarios_ActualizarInformacionDeUsuario";
            this.Command.CommandType = CommandType.StoredProcedure;

            this.Command.Parameters.Clear();


            this.Command.Parameters.AddWithValue("@IDUsuario", UsuariosSistema.IDUsuario);
            this.Command.Parameters.AddWithValue("@UsuarioSistema", UsuariosSistema.NombreUsuarioSistema);
            this.Command.Parameters.AddWithValue("@Nombre", UsuariosSistema.NombreCompleto);
            this.Command.Parameters.AddWithValue("@Telefono", UsuariosSistema.NumeroTelefono);
            this.Command.Parameters.AddWithValue("@Email", UsuariosSistema.CorreoElectronico);
            this.Command.Parameters.AddWithValue("@Estado", UsuariosSistema.Estado);
            this.Command.Parameters.AddWithValue("@UsuMod", UsuariosSistema.IDUsuarioModificacion);
            this.Command.Parameters.AddWithValue("@UltFecMod", UsuariosSistema.FechaModificacion);




            try
            {
                int ret = Ejecutar();
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }

        /// <summary>
        /// Modificacion de la contraseña para un usuario del sistema
        /// </summary>
        /// <param name="UsuariosSistema"></param>
        /// <returns></returns>
        public Mensaje UsuariosSistema_ActualizarContraseñaUsuario(UsuarioSistema UsuariosSistema)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_Usuarios_ActualizarClaveDeUsuario";
            this.Command.CommandType = CommandType.StoredProcedure;

            this.Command.Parameters.Clear();



            this.Command.Parameters.AddWithValue("@IDUsuario", UsuariosSistema.IDUsuarioModificacion);
            this.Command.Parameters.AddWithValue("@Clave", UsuariosSistema.Contraseña);
            this.Command.Parameters.AddWithValue("@UsuMod", UsuariosSistema.IDUsuarioModificacion);
            this.Command.Parameters.AddWithValue("@UltFecMod", UsuariosSistema.FechaModificacion);
            this.Command.Parameters.AddWithValue("@UltFecModClave", UsuariosSistema.FechaModificacionContraseña);




            try
            {
                int ret = Ejecutar();
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }

        /// <summary>
        /// Obtiene la informacion de un usuario en base a un ID de usuario especificado
        /// </summary>
        /// <returns></returns>
        public Mensaje UsuariosSistema_ObtenerInformacionDeUsuarioPorIDUsuario(int IDUsuario, ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_Usuarios_ObtenerInformacionUsuarioPorIDUsuario";
            this.Command.CommandType = CommandType.StoredProcedure;

            this.Command.Parameters.Clear();



            this.Command.Parameters.AddWithValue("@IDUsuario", IDUsuario);




            try
            {
                int ret = Retrieve(dsDatos);
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }

        /// <summary>
        /// Obtiene la informacion de un usuario de sistema en base a un UserName dado
        /// </summary>
        /// <returns></returns>
        public Mensaje UsuariosSistema_ObtenerInformacionDeUsuarioPorNombreUsuario(string UserName, ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_Usuarios_ObtenerInformacionUsuarioPorUserName";
            this.Command.CommandType = CommandType.StoredProcedure;

            this.Command.Parameters.Clear();

            this.Command.Parameters.AddWithValue("@UserName", UserName);

            try
            {
                int ret = Retrieve(dsDatos);
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }

        /// <summary>
        /// Obtiene la informacion de todos los usuarios de sistema registrado en la base de datos
        /// </summary>
        /// <param name="dsDatos"></param>
        /// <returns></returns>
        public Mensaje UsuariosSistema_ObtenerInformacionDeUsuarios(ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_Usuarios_ObtenerInformacionUsuarios";
            this.Command.CommandType = CommandType.StoredProcedure;

            this.Command.Parameters.Clear();


            try
            {
                int ret = Retrieve(dsDatos);
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }
        #endregion

        #region Beneficiarios

        /// <summary>
        /// Obtiene la informacion de beneficiarios asociados a un ID de cliente especifico
        /// </summary>
        /// <param name="IDCliente">ID cliente para busqueda de beneficiarios</param>
        /// <param name="dsDatos">Objeto Dataset en el cual se retorna la informacion</param>
        /// <returns>Conjunto de datos con la informacion asociada</returns>
        public Mensaje Beneficiarion_ObtenerInformacionDeBeneficiariosPorIDCliente(int IDCliente, ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_Beneficiarios_ObtenerBeneficiariosPorIDCliente";
            this.Command.CommandType = CommandType.StoredProcedure;

            this.Command.Parameters.Clear();



            this.Command.Parameters.AddWithValue("@IdCliente", IDCliente);




            try
            {
                int ret = Retrieve(dsDatos);
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }

        /// <summary>
        /// Actualiza la informacion de un beneficiario a travez de un ID especificado
        /// </summary>
        public Mensaje Beneficiarios_ActualizarInformacionDeBeneficiarios(int IdBeneficiario, string Nombre, string Identificacion, string Direccion, string Parentesco, string Telefono, int PorcentajeBeneficio, string MenorDeEdad, string NombreTutor, string IdentificacionTutor
       , string TelefonoTutor, string DireccionTutor)
        {
            Mensaje retMensaje = new Mensaje();



            this.Command.CommandText = "pcBanesco_Beneficiarios_ActualizarInformacionPorIDBeneficiario";
            this.Command.CommandType = CommandType.StoredProcedure;

            this.Command.Parameters.Clear();


            this.Command.Parameters.AddWithValue("@IdBeneficiario", IdBeneficiario);
            this.Command.Parameters.AddWithValue("@Nombre", Nombre);
            this.Command.Parameters.AddWithValue("@Identificacion", Identificacion);
            this.Command.Parameters.AddWithValue("@Direccion", Direccion);
            this.Command.Parameters.AddWithValue("@Parentesco", Parentesco);
            this.Command.Parameters.AddWithValue("@Telefono", Telefono);
            this.Command.Parameters.AddWithValue("@PorcentajeBeneficio", PorcentajeBeneficio);
            this.Command.Parameters.AddWithValue("@MenorDeEdad", MenorDeEdad);
            this.Command.Parameters.AddWithValue("@NombreTutor", NombreTutor);
            this.Command.Parameters.AddWithValue("@IdentificacionTutor", IdentificacionTutor);
            this.Command.Parameters.AddWithValue("@TelefonoTutor", TelefonoTutor);
            this.Command.Parameters.AddWithValue("@DireccionTutor", DireccionTutor);


            try
            {
                int ret = Ejecutar();
            }
            catch (SqlException sex)
            {
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }


            return retMensaje;
        }


        #endregion

        #region TitularesFirmantes

        /// <summary>
        /// Obtiene la informacion de los titulares en base a un id de cliente especificado
        /// </summary>
        /// <param name="IDCliente"></param>
        /// <param name="dsDatos"></param>
        /// <returns></returns>
        public Mensaje TitularesFirmantes_ObtenerTitularesFirmantesPorIDCliente(int IDCliente, ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_TitularesFirmantes_ObtenerInformacionDeTitularesPorIDCliente";
            this.Command.CommandType = CommandType.StoredProcedure;

            this.Command.Parameters.Clear();


            this.Command.Parameters.AddWithValue("@IdCliente", IDCliente);




            try
            {
                int ret = Retrieve(dsDatos);
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }

        /// <summary>
        /// Obtiene la informacion de los titulares en base a un id de cliente especificado
        /// </summary>
        /// <param name="IDCliente"></param>
        /// <param name="dsDatos"></param>
        /// <returns></returns>
        public Mensaje TitularesFirmantes_ObtenerFirmantesPorIDCliente(int IDCliente, ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_TitularesFirmantes_ObtenerInformacionDeFirmantesPorIDCliente";
            this.Command.CommandType = CommandType.StoredProcedure;

            this.Command.Parameters.Clear();


            this.Command.Parameters.AddWithValue("@IdCliente", IDCliente);




            try
            {
                int ret = Retrieve(dsDatos);
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }

        /// <summary>
        /// Actualiza la informacion para un titular o firmante en base a un ID especificado
        /// </summary>
        /// <param name="IDCliente"></param>
        /// <param name="dsDatos"></param>
        /// <returns></returns>
        public Mensaje TitularesFirmantes_ActualizarInformacionPorIDTitularFirmante(int IDTitularFirmante, string Identificacion, string TipoIdentificacion, string SeguroSocial, string PrimerNombre, string SegundoNombre, string PrimerApellido, string SegundoApellido, string ApellidoDeCasada, string Sexo, string EstadoCivil, DateTime FechaDeNacimiento, string Pais, string Provincia, string Distrito, string Corregimiento, string Barrio, string Calle, string Residencia, string NumeroCasa, string ApartadoPostal, string UbicacionFacilResidencia, string Email, string Telefono1, string Telefono2, string NombreEmpresa, string CodigoIndustria, string TipoEmpresa, string TipoNegocio, string DireccionEmpleo, string IdentificacionContraloria, string NumeroDeEmpleado, DateTime FechaIngresoEmpleo, string TiempoDeEmpleo, string RangoSalarial, decimal SalarioActual, string CorreoDeEmpleo, string NivelEducacion, string Profesion, string FuenteDeIngreso, string Cargo, string TipoDeActividad, string TelefonoOficina, string TelefonoFax)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_TitularesFirmantes_ActualizarInformacionTitularesFirmantes";
            this.Command.CommandType = CommandType.StoredProcedure;

            this.Command.Parameters.Clear();

            this.Command.Parameters.AddWithValue("@IDTitularFirmante", IDTitularFirmante);
            this.Command.Parameters.AddWithValue("@Identificacion", Identificacion);
            this.Command.Parameters.AddWithValue("@TipoIdentificacion ", TipoIdentificacion);
            this.Command.Parameters.AddWithValue("@SeguroSocial ", SeguroSocial);
            this.Command.Parameters.AddWithValue("@PrimerNombre ", PrimerNombre);
            this.Command.Parameters.AddWithValue("@SegundoNombre ", SegundoNombre);
            this.Command.Parameters.AddWithValue("@PrimerApellido ", PrimerApellido);
            this.Command.Parameters.AddWithValue("@SegundoApellido ", SegundoApellido);
            this.Command.Parameters.AddWithValue("@ApellidoDeCasada ", ApellidoDeCasada);
            this.Command.Parameters.AddWithValue("@Sexo ", Sexo);
            this.Command.Parameters.AddWithValue("@EstadoCivil", EstadoCivil);
            this.Command.Parameters.AddWithValue("@FechaDeNacimiento", FechaDeNacimiento);
            this.Command.Parameters.AddWithValue("@Pais ", Pais);
            this.Command.Parameters.AddWithValue("@Provincia ", Provincia);
            this.Command.Parameters.AddWithValue("@Distrito ", Distrito);
            this.Command.Parameters.AddWithValue("@Corregimiento ", Corregimiento);
            this.Command.Parameters.AddWithValue("@Barrio ", Barrio);
            this.Command.Parameters.AddWithValue("@Calle ", Calle);
            this.Command.Parameters.AddWithValue("@Residencia ", Residencia);
            this.Command.Parameters.AddWithValue("@NumeroCasa ", NumeroCasa);
            this.Command.Parameters.AddWithValue("@ApartadoPostal ", ApartadoPostal);
            this.Command.Parameters.AddWithValue("@UbicacionFacilResidencia ", UbicacionFacilResidencia);
            this.Command.Parameters.AddWithValue("@Email ", Email);
            this.Command.Parameters.AddWithValue("@Telefono1 ", Telefono1);
            this.Command.Parameters.AddWithValue("@Telefono2 ", Telefono2);
            this.Command.Parameters.AddWithValue("@NombreEmpresa ", NombreEmpresa);
            this.Command.Parameters.AddWithValue("@CodigoIndustria ", CodigoIndustria);
            this.Command.Parameters.AddWithValue("@TipoEmpresa ", TipoEmpresa);
            this.Command.Parameters.AddWithValue("@TipoNegocio ", TipoNegocio);
            this.Command.Parameters.AddWithValue("@DireccionEmpleo ", DireccionEmpleo);
            this.Command.Parameters.AddWithValue("@IdentificacionContraloria", IdentificacionContraloria);
            this.Command.Parameters.AddWithValue("@NumeroDeEmpleado ", NumeroDeEmpleado);
            this.Command.Parameters.AddWithValue("@FechaIngresoEmpleo ", FechaIngresoEmpleo);
            this.Command.Parameters.AddWithValue("@TiempoDeEmpleo ", TiempoDeEmpleo);
            this.Command.Parameters.AddWithValue("@RangoSalarial ", RangoSalarial);
            this.Command.Parameters.AddWithValue("@SalarioActual", SalarioActual);
            this.Command.Parameters.AddWithValue("@CorreoDeEmpleo ", CorreoDeEmpleo);
            this.Command.Parameters.AddWithValue("@NivelEducacion ", NivelEducacion);
            this.Command.Parameters.AddWithValue("@Profesion ", Profesion);
            this.Command.Parameters.AddWithValue("@FuenteDeIngreso", FuenteDeIngreso);
            this.Command.Parameters.AddWithValue("@Cargo ", Cargo);
            this.Command.Parameters.AddWithValue("@TipoDeActividad ", TipoDeActividad);
            this.Command.Parameters.AddWithValue("@TelefonoOficina ", TelefonoOficina);
            this.Command.Parameters.AddWithValue("@TelefonoFax ", TelefonoFax);





            try
            {
                int ret = Ejecutar();
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }


        #endregion

        #region DatosComplementarios
        /// <summary>
        /// Obtiene la informacion de datos complementarios de un cliente en base a un id de cliente
        /// </summary>
        /// <param name="IDCliente"></param>
        /// <param name="dsDatos"></param>
        /// <returns></returns>
        public Mensaje DatosComplementariosUsuarios_SeleccionarInformacionPorIDCliente(int IDCliente, ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_ClientesDatosComplementariosUsuarios_SeleccionarInformacionPorIDCliente";
            this.Command.CommandType = CommandType.StoredProcedure;

            this.Command.Parameters.Clear();


            this.Command.Parameters.AddWithValue("@IdCliente", IDCliente);




            try
            {
                int ret = Retrieve(dsDatos);
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;

        }


        /// <summary>
        /// Registra la informacion de datos complementarios para un Cliente en base a un ID de cliente existente
        /// </summary>
        public Mensaje DatosComplementarios_RegistrarInformacionDatosComplementarios(int IDCliente, string InstruccionesEspeciales, int IDUsuarioCreacion, DateTime FecCreacion, int IDUsuarioModificacion, DateTime FecModificacion)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_ClientesDatosComplementarios_RegistrarInformacionDatosComplementarios";
            this.Command.CommandType = CommandType.StoredProcedure;

            this.Command.Parameters.Clear();

            this.Command.Parameters.AddWithValue("@IdCliente", IDCliente);
            this.Command.Parameters.AddWithValue("@InstruccionesEspeciales", InstruccionesEspeciales);
            this.Command.Parameters.AddWithValue("@IDUsuarioCreacion", IDUsuarioCreacion);
            this.Command.Parameters.AddWithValue("@FecCreacion", FecCreacion);
            this.Command.Parameters.AddWithValue("@IDUsuarioModificacion", IDUsuarioModificacion);
            this.Command.Parameters.AddWithValue("@FecModificacion", FecModificacion);



            try
            {
                int ret = Ejecutar();
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;

        }

        /// <summary>
        /// Actualiza la informacion de datos complementarios de un cliente basado en un ID especifico
        /// </summary>
        public Mensaje DatosComplementarios_ActualizarInformacionCliente(int IDCliente, string InstruccionesEspeciales, int IDUsuarioModificacion, DateTime FecModificacion)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_ClientesDatosComplementarios_ActualizarInformacionCliente";
            this.Command.CommandType = CommandType.StoredProcedure;

            this.Command.Parameters.Clear();

            this.Command.Parameters.AddWithValue("@IdCliente", IDCliente);
            this.Command.Parameters.AddWithValue("@InstruccionesEspeciales", InstruccionesEspeciales);
            this.Command.Parameters.AddWithValue("@IDUsuarioModificacion", IDUsuarioModificacion);
            this.Command.Parameters.AddWithValue("@FecModificacion", FecModificacion);



            try
            {
                int ret = Ejecutar();
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;

        }

        #endregion

        #region HistoriaCreditoAPC

        /// <summary>
        /// Registra informacion asociada al momento de ejecutar una consulta de credito a la APC
        /// </summary>
        public Mensaje HistorialCreditoAPC_RegistrarInformacionConsulta(int IDUsuario, string IdentificacionCliente, string TipoIdentificacionCliente, string InformacionObtenida
           , string UsuarioAPCConsulta, DateTime FechaConsulta, DateTime FechaModificacion)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_HistorialCreditoClientesAPC_RegistrarInformacion";
            this.Command.CommandType = CommandType.StoredProcedure;

            this.Command.Parameters.Clear();



            this.Command.Parameters.AddWithValue("@IDUsuario", IDUsuario);
            this.Command.Parameters.AddWithValue("@IdentificacionCliente", IdentificacionCliente);
            this.Command.Parameters.AddWithValue("@TipoIdentificacionCliente", TipoIdentificacionCliente);
            this.Command.Parameters.AddWithValue("@InformacionObtenida", InformacionObtenida);
            this.Command.Parameters.AddWithValue("@UsuarioAPCConsulta", UsuarioAPCConsulta);
            this.Command.Parameters.AddWithValue("@FechaConsulta", FechaConsulta);
            this.Command.Parameters.AddWithValue("@FechaModificacion", FechaModificacion);



            try
            {
                int ret = Ejecutar();
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;

        }


        #endregion

        #region PEPs
        /// <summary>
        /// Obtiene la informacion de los PEPs en base a un id de cliente especificado
        /// </summary>
        /// <param name="IDCliente"></param>
        /// <param name="dsDatos"></param>
        /// <returns></returns>
        public Mensaje PEPS_ObtenerPEPsPorIDCliente(int IDCliente, ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_PEPs_ObtenerInformacionPEPs";
            this.Command.CommandType = CommandType.StoredProcedure;

            this.Command.Parameters.Clear();


            this.Command.Parameters.AddWithValue("@IDCliente", IDCliente);




            try
            {
                int ret = Retrieve(dsDatos);
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }

        #endregion

        #region AccionistaRepresentanteDirectiva
        /// <summary>
        /// Obtiene la informacion de los AccionistaRepresentanteDirectiva en base a un id de cliente especificado
        /// </summary>
        /// <param name="IDCliente"></param>
        /// <param name="dsDatos"></param>
        /// <returns></returns>
        public Mensaje AccionistaRepresentanteDirectiva_ObtenerAccionistaRepresentanteDirectivaPorIDCliente(int IDCliente, ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_AccionistaRepresentanteDirectiva_ObtenerInformacionARDPorIdCliente";
            this.Command.CommandType = CommandType.StoredProcedure;

            this.Command.Parameters.Clear();


            this.Command.Parameters.AddWithValue("@IDCliente", IDCliente);


            try
            {
                int ret = Retrieve(dsDatos);
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }

        /// <summary>
        /// Actualiza la informacion de los AccionistaRepresentanteDirectiva en base a un id de cliente especificado
        /// </summary>
        /// <param name="IDCliente"></param>
        /// <param name="dsDatos"></param>
        /// <returns></returns>
        public Mensaje AccionistaRepresentanteDirectiva_ActualizarInformacionPorIDACR(int ID_ACR, string Identificacion, string NombreDirectivo, string Cargo, string Pais, string Provincia, string Distrito, string Corregimiento, string Sexo, string Nacionalidad, string DireccionPrincipal, string Barrio, string Calle, string Residencia, string NumeroCasa, string UbicacionFacilResidencia, string TipoIdentificacion, string Email, string Telefono, string TelefonoOficina, string TelefonoCelular, String ApartadoPostal, String Direccion, String Ciudad, DateTime FechaDeNacimiento)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_AccionistaRepresentanteDirectiva_ActualizacionDeInformacion";
            this.Command.CommandType = CommandType.StoredProcedure;

            this.Command.Parameters.Clear();


            //int ID_ACR  ,string Identificacion  ,string NombreDirectivo     ,string Cargo       ,string Pais       ,string Provincia       ,string Distrito       ,string Corregimiento       ,string Sexo       ,string Nacionalidad       ,string DireccionPrincipal       ,string Barrio       ,string Calle       ,string Residencia       ,string NumeroCasa       ,string UbicacionFacilResidencia      ,string TipoIdentificacion      ,string Email  ,string Telefono       ,string TelefonoOficina  ,string TelefonoCelular ,DateTime FechaDeNacimiento 




            this.Command.Parameters.AddWithValue("@ID_ACR", ID_ACR);
            this.Command.Parameters.AddWithValue("@Identificacion", Identificacion);
            this.Command.Parameters.AddWithValue("@NombreDirectivo", NombreDirectivo);
            this.Command.Parameters.AddWithValue("@Cargo", Cargo);
            this.Command.Parameters.AddWithValue("@Pais", Pais);
            this.Command.Parameters.AddWithValue("@Provincia", Provincia);
            this.Command.Parameters.AddWithValue("@Distrito", Distrito);
            this.Command.Parameters.AddWithValue("@Corregimiento", Corregimiento);
            this.Command.Parameters.AddWithValue("@Sexo", Sexo);
            this.Command.Parameters.AddWithValue("@Nacionalidad", Nacionalidad);
            this.Command.Parameters.AddWithValue("@DireccionPrincipal", DireccionPrincipal);
            this.Command.Parameters.AddWithValue("@Barrio", Barrio);
            this.Command.Parameters.AddWithValue("@Calle", Calle);
            this.Command.Parameters.AddWithValue("@Residencia", Residencia);
            this.Command.Parameters.AddWithValue("@NumeroCasa", NumeroCasa);
            this.Command.Parameters.AddWithValue("@UbicacionFacilResidencia", UbicacionFacilResidencia);
            this.Command.Parameters.AddWithValue("@TipoIdentificacion", TipoIdentificacion);
            this.Command.Parameters.AddWithValue("@Email", Email);
            this.Command.Parameters.AddWithValue("@Telefono", Telefono);
            this.Command.Parameters.AddWithValue("@TelefonoOficina", TelefonoOficina);
            this.Command.Parameters.AddWithValue("@TelefonoCelular", TelefonoCelular);

            this.Command.Parameters.AddWithValue("@ApartadoPostal", ApartadoPostal);
            this.Command.Parameters.AddWithValue("@Direccion", Direccion);
            this.Command.Parameters.AddWithValue("@Ciudad", Ciudad);
            this.Command.Parameters.AddWithValue("@FechaDeNacimiento", FechaDeNacimiento);



            try
            {
                int ret = Ejecutar();
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }


        public Mensaje ObtenerInfoCoreCliente(int idCliente, ref DataSet dsDatos)
        {
            Mensaje retMensaje = new Mensaje();

            this.Command.CommandText = "pcBanesco_Buscar_Informacion_Core";
            this.Command.CommandType = CommandType.StoredProcedure;
            this.Command.Parameters.AddWithValue("@idCLiente", idCliente);

            try
            {
                int ret = this.Retrieve(dsDatos);
            }
            catch (SqlException sex)
            {
                //DSC.LogErrores(Mensaje.EnumStatus.ERRORBD.ToString(), sex.ErrorCode.ToString(), sex.Message);
                retMensaje.Status = Mensaje.EnumStatus.ERRORBD;
                retMensaje.Error = sex.ErrorCode.ToString();
                retMensaje.MensajeTecnico = sex.Message;
            }
            return retMensaje;
        }

        #endregion
    }
}
